Visualisierung LU WS09 -
Dokumentation
WS09/10
Wolfgang Zalesak e0727115
Michael Benda e0625162
Projekt 2: Strömungsvisualisierung
Features
Das Programm
ermöglicht die Darstellung von Strömungsdaten im Format .DAT/.GRI.
Der Benutzer
kann sich die in den Daten enthaltenen
Informationen wie Geschwindigkeit und Druck farblich codiert anzeigen
lassen.
Des weiteren
können die Strömungsrichtungen mithilfe von Arrowplots verdeutlicht werden.
Das Programm
bietet die Möglichkeit Strömungslinien anzuzeigen und zwei numerische
Integrationstechniken , Euler und Runge-Kutta Integration, zu vergleichen.
Der
Hauptzweck der Applikation besteht jedoch in dem visuell ansprechenden
Minispiel Breakout.
GUI
Das GUI ist
komplett in OpenGL programmiert wobei die Transferfunktion selbst gemacht
worden ist und restlichen Gui Elemente von GLUI übernommen worden sind.
Das
Programmfenster besteht aus 4 Teilen:
Das Hauptfenster stellt die gewählten
Strömungsdaten dar. In diesem Teil des Programmes wird auch mit dem Minispiel
in Echtzeit interagiert.
Mithilfe des
Menüs am rechten Rand können die
Darstellungen im Hauptfenster eingestellt und bearbeitet werden:
Color
coding
Hier kann der anzuzeigende Kanal ausgewählt werden,
welcher im Hauptfenster Farbkodiert dargestellt wird. Die zum Kanal zugehörige
Transferfunktion kann hier im Format TTF zur späteren Wiederverwendung
abgespeichert und eingeladen werden
Arrow plotting
In diesem Menü können Pfeile ein und ausgeblendet
werden, welche die Strömungsrichtung veranschaulichen.
Weiters können hierbei Parameter wie der Pfeilabstand sowie Pfeilgröße
angepasst werden.
Die Option Scale with velocity lässt
die Größe der Pfeile je nach Positionsgeschwindigkeit variieren.
Streamlines
Die Parameter für die Strömungsliniendarstellung
können in diesem Abschnitt verändert werden. Der Wert Lines regelt die Anzahl der dargestellten Linien, der Wert Steps passt die Anzahl der Schritte in
der Integration an und variiert somit die Länge der Strömungslinien, der Wert Stepsize beschreibt die Schrittgröße
der Integrationsalgorithmen und somit die Genauigkeit der Linien.
Die Option Weighted Streamlines
erzeugt verstärkt Linien in den relevanteren Gebieten (datensatzabhängig).
Die Optionen Euler und Runke Kutta steuern die Anzeige der
beiden Integrationsvarianten und ermöglicht bei gleichzeitiger Anwendung einen
subjektiven Vergleich.
Mit der Steueroption Pause startet (und pausiert) man das Minispiel im Hauptfenster
(siehe Minispiel)
Open erzeugt einen Benutzerdialog, für
die Auswahl eines Datensatzes.
Screenshot speichert das momentane Bild des
Hauptfensters sowie die Transferfunktion
als Legende.
Exit beendet das Programm.
Die Transferfunktion am unteren
Bildschirmrand ermöglicht die Benutzerdefinierte Farbcodierung der
Strömungsdaten im Hauptfenster.
Mit einem Linksklick in die Transferfunktion wird ein neuer Kontrollpunkt
erstellt.
Mit einem
gehaltenen Linksklick auf einen Kontrollpunkt kann man diesen verschieben.
Schieb man den Punkt weit aus dem Transferfunktionsfenster heraus wird dieser
gelöscht.
Mit einem
Rechtsklick auf eine Kontrollpunkt kann man dessen Farbe ändern.
Im linken
oberen Bereich werden Leben (Lives), Punkte (Points) sowie Zustand des Minispiels angezeigt.
Minispiel
Bei eingeladenem
Datensatz wird durch Deaktivierung der Option Pause im Menü das Spiel gestartet.
Das Spiel
besteht aus einem Schläger, einem Ball sowie einer Anzahl von Blöcken.
Das Ziel des
Spieles ist mit dem Ball alle Blöcke 3 Mal zu treffen und somit zu entfernen.
Sobald alle Blöcke entfernt sind, ist das Spiel gewonnen.
Die Anzahl
von 5 Leben verringert sich jedes Mal, wenn der Ball am Schläger vorbei nach
unten Fällt.
Der Schläger
kann mithilfe der Maus in die Richtungen links und rechts gesteuert werden.
Im Laufe der
Spielzeit nehmen die Strömungen des Datensatzes Einfluss auf die Flugbahn des
Balles und erschwert das Erreichen des Spielziels.
Verwendete Technologien
Programm
Das Programm
ist hier zum download verfügbar. Nvidia Karte
wird vorausgesetzt.
Doxygen
Die Doxygen
Doku ist hier verfügbar.
Der
Sourcecode ist hier verfügbar.
Screenshots